package com.lesama.set;

import com.lesama.domain.Student;

import java.util.Comparator;
import java.util.TreeSet;

// 若对象要使用TreeSet集合，需要实现Comparable类
// compareTo方法： 返回0，相等； 返回1， 大于； 返回-1， 小于
// 相等不添加，大于往右加，小于往左加
// Student cannot be cast to class java.lang.Comparable

public class TreeSetDemo2 {
    public static void main(String[] args) {
        TreeSet<Student> set = new TreeSet<>((o1, o2) -> {
            int ageResult = o2.getAge() - o1.getAge(); // 先按照年龄逆序排列
            return ageResult == 0 ? o2.getName().compareTo(o1.getName()) : ageResult; // 若年龄相同，再按照姓名逆序排序
        });
        set.add(new Student("bin", 23));
        set.add(new Student("knight", 25));
        set.add(new Student("faker", 29));
        set.add(new Student("elk", 25));
        set.add(new Student("chovy", 23));
        System.out.println(set);
    }
}
